Язык программирования
MathCAD
Для вставки программного кода в документы в
MathCAD имеется специальная панель инструментов Programming (Программирование),
которую можно вызвать на экран нажатием кнопки Programming Toolbar на
панели Math (Математика). большинство кнопок этой панели выполнено в виде
текстового представления операторов программирования, поэтому их смысл легко
понятен.
Что такое программа?
Основными инструментами
работы в MathCAD являются математические выражения, переменные и функции.
Нередко записать формулу, использующую ту или иную внутреннюю логику (например,
возвращение различных значений в зависимости от условий), в одну строку не
удается. Назначение программных модулей как раз и заключается в определении
выражений, переменных и функций в несколько строк, часто с применением
специфических программных операторов.
Функция условия, определенная с помощью
программы

Программирование имеет ряд существенных
преимуществ, которые в ряде случаев делают документ более простым и читаемым:
-возможность применения циклов и условных операторов;
-простота создания функций и переменных, требующих нескольких простых шагов
-возможность создания
функций, содержащих закрытый для остального документа код, включая преимущества
использования локальных переменных и обработку исключительных ситуаций
(ошибок).
программный модуль обозначается в MathCAD вертикальной чертой, справа от
которой последовательно записываются операторы языка программирования.
Вставить строку
программного кода в уже созданную программу можно в любой момент с помощью той
же самой кнопки Add Line (Добавить линию). Для этого следует
предварительно поместить на нужное место внутри программного модуля линии
ввода. Например, расположение линии ввода на строке приведет к появлению новой
линии с место-заполнителем перед этой строкой. Если передвинуть вертикальную
линию ввода из начала строки в ее конец, то новая линия появится после строки.
Если выделить строку не целиком, а лишь некоторую ее часть, то это повлияет на
положение в программе новой строки кода

Положение линий ввода влияет на положение новой линии
Зачем может потребоваться вставка новой линии в
положение, показанное на рис. 6.7 Новая вертикальная черта с двумя линиями
выделяет фрагмент программы, который относится к условию х>о, находящемуся в
его заголовке. Пример возможного дальнейшего программирования показан в
листинге 6.4.

Результат вставки новой линии в
программу
Пример усовершенствования программы

В режиме выполнения
программы, а это происходит при любой попытке вычислить f(х), выполняется `последовательно
каждая строка кода.
Язык программирования
MathCAD не был бы эффективным, если бы не позволял создавать внутри программных
модулей локальные переменные, которые "не видны" извне, из других
частей документа. Присваивание в пределах программ, в отличие от документов
MathCAD, производится с помощью оператора Local Definition (Локальное
присваивание), который вставляется нажатием кнопки с изображением стрелки <-
на панели Programming (Программирование).
Ни оператор присваивания :=, ни оператор вывода = в пределах программ не
применяются.
Переменная z существует только внутри
программы, выделенной вертикальной чертой. Из других мест документа получить ее
значение невозможно.
Локальное присваивание в программе

Условные
операторы (if, otherwise)
Действие условного
оператора if состоит из двух частей. Сначала проверяется логическое выражение
(условие) справа от него. Если оно истинно, выполняется выражение слева от
оператора if. Если ложно - ничего не происходит, а выполнение программы
продолжается переходом к ее следующей строке.
Оператор otherwise используется совместно с одним или несколькими условными
операторами if и указывает на выражение, которое будет выполняться, если
ни одно из условий не оказалось истинным.
Операторы
цикла
(for, while, break, continue)
В языке программирования MathCAD имеются два
оператора цикла: for и while. Первый из них дает возможность организовать цикл
по некоторой переменной, заставляя ее пробегать некоторый диапазон значений.
Второй создает цикл с выходом из него по некоторому логическому условию. Чтобы
вставить в программный модуль оператор цикла:
1. Создайте в программном модуле новую линию.
2. Вставьте один из операторов цикла for или while нажатием одноименной кнопки
на панели Programming (Программирование).
3. Если выбран оператор for, то вставьте в соответствующие местозаполнители имя
переменной и диапазон ее значений, а если while - то логическое выражение, при
нарушении которого должен осуществляться выход из цикла.
4. В нижний местозаполнитель введите тело цикла, т. е. выражения, которые
должны выполняться циклически.
5. При необходимости дополните программу другими строками и введите в них
нужный код.
Примечание
Диапазон значений переменной в условии цикла for можно задать как с помощью
диапазона ранжированной переменной, так и с помощью вектора.
Оператор цикла for с ранжированной переменной

Оператор цикла for с вектором

Оператор цикла while ,

Иногда необходимо досрочно завершить цикл, т. е.
не по условию в его заголовке, а в некоторой строке в теле цикла. Для этого
предназначен оператор break.
Оператор break внутри цикла for

Оператор break внутри цикла while

Чтобы четче обозначить границы завершения тела цикла, в его конце может
использоваться дополнительная строка с оператором continue, который вводится
одноименной кнопкой панели Programming
Оператор continue в конце цикла while

Оператор continue в конце цикла for

Если для определения переменной или функции применяется программный модуль, то
его строки исполняются последовательно при вычислении в документе этой
переменной или функции. Соответственно, по мере выполнения программы
рассчитываемый результат претерпевает изменения. В качестве окончательного
результата выдается последнее присвоенное значение. Чтобы подчеркнуть возврат
программным модулем определенного значения, можно взять за правило делать это в
последней строке программного модуля.
Возврат значения обозначен явно в последней
строке программы

Вместе с тем, можно
прервать выполнение программы в любой ее точке (например, с помощью условного
оператора) и выдать некоторое значение, применив оператор return. В этом случае
при выполнении указанного условия значение, введенное в местозаполнитель после
return, возвращается в качестве результата, а никакой другой код больше не
выполняется. Вставляется в программу оператор return с помощью одноименной
кнопки панели Programming (Программирование).
Применение оператора return

Перехват ошибок (on
error)
Программирование в MathCAD позволяет осуществлять дополнительную обработку
ошибок. Если пользователь предполагает, что выполнение кода в каком-либо месте
программного модуля способно вызвать ошибку (например, деление на ноль), то эту
ошибку можно перехватить с помощью оператора on error. Чтобы вставить его в
программу, надо поместить линии ввода в ней в нужное положение и нажать кнопку
с именем оператора on error на панели Programming (Программирование). В
результате появится строка с двумя местозаполнителями и оператором on error
посередине.
В правом местозаполнителе следует ввести
выражение, которое должно выполняться в данной строке программы. В левом -
выражение, которое будет выполнено вместо правого выражения, если при
выполнении последнего возникнет ошибка.
Перехват ошибки деления на ноль

Оператор перехвата
ошибок удобно применять в комбинации со встроенной функцией error(S). Она
приводит к генерации ошибки в обычной для MathCAD форме с сообщением s.

Перехват ошибки деления на ноль
Рассмотрим два простых примера использования
программных модулей в MathCAD для численных и символьных расчетов. В двух
приведенных листингах используется большинство операторов, рассмотренных в
данной главе.
Программирование в численных расчетах

Программирование в
символьных расчетах

Задания:
1.
Составить программу-функцию для вычисления переменной
z по формуле
z( t
) =
2.
Составить программу вычисления факториала числа n
3.
Для x меняющего от -2 до 2 с шагом 0.5 вычислить
значение f(x) = e-x . Cos (
2x ) и сформировать из этих значений
вектор y, т.е. y1 =
f(-2), y2 = f(-1.5)
и т.д.
4.
Составить программу вычисления максимального элемента
матрицы
5.
Вычислить значение x=
, используя итерационную
процедуру xn=0.5(xn-1+a/xn-1), n=1,2,3,.., x0=a. В качестве приближенного значения корня
квадратного берется такое значение xn, которое удовлетворяет условию
,где
- заданная точность вычисления
6.
Написать программу перевода десятичного числа в
двоичное